<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
   <script>
       //var 声明的变量往往会越域
       //let 声明的变量有严格局部作用域
       {
           //var a = 1;
           let b = 2;
       }
       console.log(a); //1
       //console.log(b); //ReferenceError: b is not defined

       //var 可以声明多次
       //let 只能声明一次
       var m = 1
       var m = 2
       let n = 3
       //let n = 4
       console.log(m) //2
       console.log(n) //SyntaxError: redeclaration of let n

       //var 会变量提升
       //let 不会变量提升
       console.log(x) //undefined
       var x = 10;
       //console.log(y) //ReferenceError: can't access lexical declaration 'y' before initialization
       //let y = 20; 

       //const声明变量（只读变量、常量）
       //1、声明之后不允许改变
       //2、一旦声明必须初始化，否则会报错
       const a = 1;
       a = 3; // ReferenceError: can't access lexical declaration 'a' before initialization
   </script>
<body>
    
</body>
</html>